#include "Common_Config.h"

long Common_Config_GetCurrentTimeMs(void)
{
    struct timeval tv;
    // 获取当前时间
    gettimeofday(&tv, NULL);
  
    return tv.tv_sec * 1000 + tv.tv_usec / 1000;
    // tv_sec: 秒  tv_usec: 微秒

}


/**
 * 把字节数组转为16进制字符串
 */
char* Common_Config_bytes2hexstr(char* bytes, int len)
{   
    char* hexstr = (char*)malloc(len * 2 + 1);
    for (int i = 0; i < len; i++)
    {
        sprintf(hexstr+i*2, "%02x",  bytes[i]); //每次转换1个字节变为2个16进制字符
    }
    hexstr[len*2]='\0';
    return hexstr;
    
}
/**
 * //把16进制的字符串转换成字节数组
 * 传入16进制的字符串（数据） ，传入字节数组（空、已有空间）
 * 返回字节数组的长度
 */
int Common_Config_hexstr2bytes(char* hexstr, char* bytes_buff)
{  
    for (size_t i = 0; i <strlen(hexstr); i+=2)
    {
        char temp[3]={hexstr[i],hexstr[i+1],'\0'};
        //2： 读取2位   hh：存储为char类型  x：从16进制
        sscanf(temp,"%2hhx",&bytes_buff[i/2]);
    }
    return strlen(hexstr)/2;

}
